package main

import "fmt"

// https://blog.csdn.net/mdpets/article/details/127663206
// as of 1.22 长期存在的 "for "循环在迭代之间意外共享循环变量的问题现已得到解决。
// as of 1.22 range可直接用于整数。
func main() {
	done := make(chan bool)

	values := []string{"a", "b", "c"}
	for _, v := range values {
		go func() {
			fmt.Println(v) //不会因为闭包导致都输出同一个值了
			done <- true
		}()
	}

	// wait for all goroutines to complete before exiting
	for _ = range values {
		<-done
	}

	//range直接用在整数上 - 范围是[0,10)
	for i := range 10 {
		fmt.Println(i)
	}
}
